A microprocessor device is a central processing unit or CPU for a digital processor which is usually contained in a single semiconductor integrated circuit or "chip" fabricated by MOS/LSI technology, as shown in U.S. Pat. No. 3,757,306 issued to Gary W. Boone and assigned to Texas Instruments. The Boone patent shows a single-chip 8-bit CPU including a parallel ALU, registers for data and addresses, an instruction register and a control decoder, all interconnected using the von Neumann architecture and employing a bidirectional parallel bus for data, address and instructions. U.S. Pat. No. 4,074,351, issued to Gary W. Boone, and Michael J. Cochran, assigned to Texas Instruments, shows a single-chip "microcomputer" type device which contains a 4-bit parallel ALU and its control circuitry, with on-chip ROM for program storage and on-chip RAM for data storage, constructed in the Harvard architecture. The term microprocessor usually refers to a device employing external memory for program and data storage, while the term microcomputer refers to a device with on-chip ROM and RAM for program and data storage. In describing the instant invention, the term "microcomputer" will be used to include both types of devices, and the term "microprocessor" will be primarily used to refer to microcomputers without on-chip ROM; since the terms are often used interchangeably in the art, however, it should be understood that the use of one or the other of these terms in this description should not be considered as restrictive as to the features of this invention.
Modern microcomputers can be grouped into two general classes, namely general-purpose microprocessors and special-purpose microcomputers/microprocessors. General purpose microprocessors, such as the M68020 manufactured by Motorola, Inc., are designed to be programmable by the user to perform any of a wide range of tasks, and are therefore often used as the central processing unit in equipment such as personal computers. Such general-purpose microprocessors, while having good performance for a wide range of arithmetic and logical functions, are of course not specifically designed for or adapted to any particular one of such functions. In contrast, special-purpose microcomputers are designed to provide performance improvement for specific predetermined arithmetic and logical functions for which the user intends to use the microcomputer. By knowing the primary function of the microcomputer, the designer can structure the microcomputer in such a manner that the performance of the specific function by the special-purpose microcomputer greatly exceeds the performance of the same function by the general-purpose microprocessor regardless of the program created by the user.
One such function which can be performed by a special-purpose microcomputer at a greatly improved rate is digital signal processing, specifically the computations required for the implementation of digital filters and for performing Fast Fourier Transforms. Because such computations consist to a large degree of repetitive operations such as integer multiply, multiple-bit shift, and multiply-and-add, a special-purpose microcomputer can be constructed specifically adapted to these repetitive functions. Such a special-purpose microcomputer is described in U.S. Pat. No. 4,577,282, assigned to Texas Instruments Inc. The specific design of a microcomputer for these computations has resulted in sufficient performance improvement over general purpose microprocessors to allow the use of such special-purpose microcomputers in real-time applications, such as speech and image processing.
Digital signal processing applications, because of their computation intensive nature, also are rather intensive in memory access operations. Accordingly, the overall performance of the microcomputer in performing a digital signal processing function is not only determined by the number of specific computations performed per unit time, but also by the speed at which the microcomputer can retrieve data from, and store data to, system memory. Prior special-purpose microcomputers, such as the one described in said U.S. Pat. No. 4,577,282, have utilized modified versions of a Harvard architecture, so that the access to data memory may be made independent from, and simultaneous with, the access of program memory. Such architecture has, of course, provided for additional performance improvement.
However, the use of a Harvard architecture instead of a von Neumann architecture also provides certain limitations, some of which may adversely impact the performance of the microcomputer in digital signal processing applications. For example, the data and program memory, since they are accessed by different buses, generally must reside in separate address spaces, if not in separate physical locations. Accordingly, a first dedicated memory must be provided for data memory and a second dedicated memory must be provided as program memory in the Harvard architecture. This limits the flexibility of the microcomputer, by preventing the use of unutilized data memory for program storage, and vice-versa.
Direct memory access (DMA) is another useful function for both general and special purpose microcomputers, and is an especially useful function in digital signal processing applications. As the performance of microcomputers has increased over time, the rate at which data and instructions must be provided from memory has also increased. On-chip DMA controllers have been used to relieve the central processing unit from controlling the provision of data and instructions to itself. However, control of the start and stop of a DMA transfer has been accomplished by way of a single signal, such as a bit in a DMA control register, which has provided for inflexible control of the DMA operation, as once the DMA transfer has begun, it may not be stopped prior to the completed transfer of the entire block except by a full abort of the transfer of the block. Such inflexibility in the control of the DMA operation may waste machine cycles in certain situations, as either the central processing unit must idle awaiting the completion of the DMA transfer of the entire block, or the DMA must be unconditionally aborted and subsequently restarted (wasting DMA cycles).
It would therefore be advantageous to be able to control DMA operation to be held at states within the operation, so as to allow the DMA operation to occur at the most efficient times, such as when not in conflict with the central processing unit. Such control would help reduce the amount of time that the central processing unit is not performing useful operations, increasing the overall performance of the microcomputer accordingly.
It is therefore an object of this invention to provide a microcomputer with an on-chip DMA controller which has the capability of holding the transfer at various states therein.
It is yet another object of the invention to provide such capability by using multiple bits in a control register to select the hold states.
It is yet another object of the invention to utilize system interrupts, rather than dedicated interrupt terminals, for the synchronization of the DMA operation with external memory devices.
Further objects and advantages of the instant invention will become apparent to those of ordinary skill in the art having reference to the following specification, together with its drawings.